home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiscKit1.7.1 / MiscKit / Temp / MiscPickList / MiscPickList.h < prev    next >
Text File  |  1995-04-12  |  3KB  |  84 lines

  1. //
  2. //    MiscPickList.h -- Pick List
  3. //        Written by Don Yacktman Copyright (c) 1994 by Don Yacktman.
  4. //                Version 0.1.  All rights reserved.
  5. //
  6. //        This notice may not be removed from this source code.
  7. //
  8. //    This object is included in the MiscKit by permission from the author
  9. //    and its use is governed by the MiscKit license, found in the file
  10. //    "LICENSE.rtf" in the MiscKit distribution.  Please refer to that file
  11. //    for a list of all applicable permissions and restrictions.
  12. //    
  13.  
  14. // This object will pop up a window with a list of possible selections.
  15. // If one is selected, it is entered into the associated "textPal".
  16. // If -addItem: or modifyItem: is sent, then a new key is taken from
  17. // the entryText and added to the list.  This class requires the accompanying
  18. // "MiscPickList.nib" to be in your application's project for it to work.
  19.  
  20. // Do NOT allocate these yourself; use the +findPickListNamed: method!
  21.  
  22. #import <misckit/misckit.h>
  23.  
  24. @interface MiscPickList : MiscNibController
  25. {
  26.     MiscDictionary *itemList;
  27.     List *sortedKeys;
  28.     MiscString *listPath;
  29.     MiscString *listName;
  30.     BOOL changed, autoSave;
  31.     id textPal; // connected up dynamically to the GUI
  32.  
  33.     // Things to connect to the GUI:
  34.     id browser;            // a Matrix of TextFields inside a ScrollView
  35.     id entryText;        // a TextField
  36.     id modifyButton;    // a Button
  37.     id addButton;        // a Button
  38. }
  39.  
  40. + findPickListNamed:(MiscString *)aName; // use this to get picklists.
  41. + (MiscString *)pickListExtension;
  42. + (MiscString *)fileNameForPickListNamed:(MiscString *)aName;
  43.  
  44.  
  45. - init; // don't ever call init!
  46. - free;
  47. - initForListNamed:(MiscString *)aName;
  48. - loadItemList:(MiscString *)aPath name:(MiscString *)aName;
  49. - reloadItemList;
  50. - saveList;
  51. - saveListToPath:(MiscString *)aPath;
  52.  
  53. - popUp:sender; // brings up the associated window.
  54. - popUpForTextPal:aTextField; // sets text pal and does pop up
  55. - doEntry:sender; // enters current selection into the textPal
  56. - finishEntry:sender; // above plus closes window
  57.  
  58. - addItem:sender; // adds -stringValue of textPal as a key.  (val==key)
  59. - modifyItem:sender; // changes the selected key and value pair
  60. - addItemToList:(MiscString *)anItem; // add a string as a key
  61. - addItemToList:(MiscString *)anItem value:(MiscString *)aValue;
  62. - removeItemFromList:(MiscString *)anItem;
  63. - (MiscDictionary *)itemList;
  64. - (BOOL)isDirty; // returns YES if needs to be saved.
  65. - (MiscString *)listPath;
  66. - (MiscString *)listName;
  67.  
  68. // any action which alters the list will cause it to be saved if
  69. // autoSave is on.  This is the default behavior.
  70. - (BOOL)autoSave;
  71. - setAutoSave:(BOOL)flag;
  72.  
  73. - setBrowser:anObject;
  74. - browser;
  75. - setEntryText:anObject;
  76. - entryText;
  77. - setTextPal:anObject;
  78. - textPal;
  79.  
  80. - (MiscString *)selectedKey;
  81. - selectKey:(MiscString *)aKey;
  82.  
  83. @end
  84.